﻿/**
 * 覆盖module.js中同名变量
 * @type String
 */
module.fromId = 'ufrom';
module.dialogId = 'udialog';
module.datagrid = 'usergrid';
module.treeId = 'usertree';

module.rootUrl = 'user/';

/**
 * 装载表单数据
 * 
 * 覆盖module.js中同名方法
 * 
 * @param data
 *            装载的数据
 */
module.loadForm = function (data) {
	// 禁用账号编辑要写在最前面,因为form在load数据的时候会触发账户的一个事件
	// 而这个事件需要判断是否已经禁用了
	$('#UAccount').textbox('readonly', true);
	$('#' + module.fromId).form('load', {
		id : data.id,
		UAccount : data.u_account,
		UAlias : data.u_alias,
		UMobile : data.u_mobile,
		UMail : data.u_mail,
		URemarks : data.u_remarks,
		UGroup : data.u_group,
		Usex : data.u_sex
	});
	// 选中当前角色的所有权限
	var node = null;
	var tree = $('#URoles').combotree('tree');	// 获取树对象
	var nodeIds = data.r_ids ? String(data.r_ids).split(',') : '';
		for(var i=0;i<nodeIds.length;i++){
			var node =tree.tree('find',nodeIds[i]);
			var isleaf =tree.tree('isLeaf',node.target);
			if(isleaf){
				tree.tree('check',node.target);
				}
		}
	
};

/**
 * 树菜单树选择事件
 * 
 * 覆盖module.js中同名方法
 * 
 * @param node 节点数据
 */
module.onSelectTree = function (node) {
	// 判断是否为根节点
	if (!node.id || node.id == -1) {
		// 如果角色Id为空或者为-1则刷新列表
		module.reloadDatagrid();
	} else {
		// getAllChildNodeId函数在tree.js
		var ids = getAllChildNodeId(this, node);
		var filters = [];
		// 判断是否为叶子节点,如果是叶子节点则没有子节点
		if ($(this).tree('isLeaf', node.target)) {
			filters.push(add_condition("and", "等于", "", "u_group", ids.join(), "", "number"));
		} else {
			filters.push(add_condition("and", "in", "", "u_group", ids.join(), "", "string"));
		}
		fun_query(module.datagrid, filters);
	}
};

/**
 * 打开用户信息编辑框
 * 
 * 覆盖module.js中同名方法
 */
module.openDialog = function () {
	$('#UAccount').textbox('readonly', false);
	$('#' + module.fromId).form('clear');
	$('#' + module.dialogId).dialog('open');
	var node = $('#' + module.treeId).tree('getSelected');
	if (node) {
		$('#UGroup').combotree('setValue', node.id);
	}
};
 

/**
 * 表单提交
 * 
 * 覆盖module.js中同名方法
 */
module.edit = function () {
	if($("#UPwd").textbox('getValue')!=$("#UPwdAgin").textbox('getValue')){
		alert("两次输入密码不一致！");
		return;
	}
	Common.Util.submitForm(module.fromId, module.rootUrl + module.modifyUrl, function (msg) {
		module.reloadDatagrid();
		module.closeDialog();
	});
};

/**
 * 数据查询
 * 
 * 覆盖module.js中同名方法
 */
module.queryDatagrid = function() {
	var username = $('#username').textbox('getValue');

	var filters = [];
	// 判断查询参数是否为空
	if (!Common.Util.isEmpty(username)) {
		filters.push(add_condition("and", "包含", "users", "u_alias", username, "", "string"));
	}

	// 执行查询
	fun_query(module.datagrid, filters);
	filters = null;
};

/**
 * 判断账号是否存在
 * 
 * @param newValue
 *            新输入的值
 * @param oldValue
 *            以前的值
 */
function existAccount(newValue, oldValue) {
	var obj = this;
	// 判断当前变更后的值是否为空,如果为空则不需要验证
	// 判断当前组件是否是'只读'属性,如果是只读则不需要验证
	if (!newValue || $(obj).textbox('options').readonly) { return; }
	
	var filters = [];
	filters.push(add_condition("and", "等于", "users", "u_account", newValue, "", "string"));
	var current_args = {
		filter : encodeURI(Serialize(filters))			
	};
	$.ajax({
		url : 'query.do?target=existAccount',
		type : 'POST',
		dataType : 'json',
		data : current_args,
		success : function(data) {
			if (data.rows[0].accNumber > 0) {
				Common.Util.showMessager({msg:"该帐号已存在,请使用其他账号!"});
				$(obj).textbox('clear');
			}
		}
	});
}

/**
 * 角色下拉框数据过滤
 * 
 * @param data
 *            过滤的数据
 * @returns 返回过滤后的数据
 */
function roleLoadFilter(data) {
	return data.rows;
}

function uStatusFormatImg(value, row, index){
	 if(row.u_status==1){
		return "<img src=\"res/img/ok.png\"/> ";
	}else if(row.u_status==2){
		return "<img src=\"res/img/ng.png\"/> ";
	}
}
function userFormat(value, row, index) {
	if(row.u_sex==1){
		return "<img src=\"res/img/boy.png\" title=\"男\"/> "+value;
	}else if(row.u_sex==0){
		return "<img src=\"res/img/girl.png\" title=\"女\"/> "+value;
	}else{
		return value;
	}
}

window.onload=function(){
	$.ajax({
		type : "post",
		url : "group/group_native_tree.tree",
		dataType:"json",
		success : function(data) {
			$('#usertree').tree('loadData', data);
			$('#UGroup').combotree('loadData', data);
		},
    	error : function() {
    		$.messager.alert('info','网络超时，请稍后再试！');
    	}
	});
}


